#include "ConstruitRepresentationAgence.hpp"

#include "TraitementRequete.hpp"

#include "StructureDonnees.hpp"

// Pour debugging
#include <iostream>
using namespace std;

ConstruitRepresentationAgence::ConstruitRepresentationAgence
( const QString& agence, const QString& mdp, const QString& contenu,
  QObject* parent )
  : BaseConstruitRepresentation( agence, mdp, contenu, parent ),
    InfosAgence( 0 )
{}

ConstruitRepresentationAgence::~ConstruitRepresentationAgence()
{}

void ConstruitRepresentationAgence::chargeInformations( const QString& )
{
  if ( RecuperateurContenu != 0 )
    {
      delete RecuperateurContenu;
      RecuperateurContenu = 0;
    }
  RecuperateurContenu = new TraitementRequete( Contenu, Agence, MotDePasse,
					       this );

  connect( RecuperateurContenu,
	   SIGNAL( envoieTexte( const StructureDonnees* ) ),
           this, SLOT( construitInfoInstance( const StructureDonnees* ) ) );
}

const XmlInfoAgence& ConstruitRepresentationAgence::infosAgence() const
{
 return *InfosAgence;
}


const XmlInfoAgence* ConstruitRepresentationAgence::infosAgencePtr() const
{
 return InfosAgence;
}

void ConstruitRepresentationAgence::construitInfoInstance( const StructureDonnees *infos )
{
    construitInfoAgence( infos );
}

void ConstruitRepresentationAgence::construitInfoAgence( const StructureDonnees* infos )
{
  if ( InfosAgence != 0 )
    {
      delete InfosAgence;
      InfosAgence = 0;
    }

  const QHash< QString, QString >* hashInfos = infos -> listeAttributs( "agency" );

  InfosAgence = new XmlInfoAgence( XmlInfoAgence::creeInstance( Contenu, hashInfos ) );

  emit( infosPretes() );
}
